﻿namespace SLClient.ServiceAPI
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.Serialization;
    using System.Threading;

    [DataContract(Name="ViwMoneyOut", Namespace="http://www.slclient.com"), DebuggerStepThrough, GeneratedCode("System.Runtime.Serialization", "4.0.0.0")]
    public class ViwMoneyOut : INotifyPropertyChanged
    {
        private string AccountNameField;
        private decimal AmountField;
        private string BankNameField;
        private string BankNumField;
        private DateTime CreateTimeField;
        private Guid IdField;
        private int OrderIdField;
        private PropertyChangedEventHandler _PropertyChanged;
        private Guid UserIdField;
        private string UserNameField;

        public event PropertyChangedEventHandler PropertyChanged
        {
            add
            {
                PropertyChangedEventHandler handler2;
                PropertyChangedEventHandler propertyChanged = this._PropertyChanged;
                do
                {
                    handler2 = propertyChanged;
                    PropertyChangedEventHandler handler3 = (PropertyChangedEventHandler) Delegate.Combine(handler2, value);
                    propertyChanged = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this._PropertyChanged, handler3, handler2);
                }
                while (propertyChanged != handler2);
            }
            remove
            {
                PropertyChangedEventHandler handler2;
                PropertyChangedEventHandler propertyChanged = this._PropertyChanged;
                do
                {
                    handler2 = propertyChanged;
                    PropertyChangedEventHandler handler3 = (PropertyChangedEventHandler) Delegate.Remove(handler2, value);
                    propertyChanged = Interlocked.CompareExchange<PropertyChangedEventHandler>(ref this._PropertyChanged, handler3, handler2);
                }
                while (propertyChanged != handler2);
            }
        }

        protected void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this._PropertyChanged;
            if (propertyChanged != null)
            {
                propertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        [DataMember]
        public string AccountName
        {
            get
            {
                return this.AccountNameField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AccountNameField, value))
                {
                    this.AccountNameField = value;
                    this.RaisePropertyChanged("AccountName");
                }
            }
        }

        [DataMember]
        public decimal Amount
        {
            get
            {
                return this.AmountField;
            }
            set
            {
                if (!this.AmountField.Equals(value))
                {
                    this.AmountField = value;
                    this.RaisePropertyChanged("Amount");
                }
            }
        }

        [DataMember]
        public string BankName
        {
            get
            {
                return this.BankNameField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BankNameField, value))
                {
                    this.BankNameField = value;
                    this.RaisePropertyChanged("BankName");
                }
            }
        }

        [DataMember]
        public string BankNum
        {
            get
            {
                return this.BankNumField;
            }
            set
            {
                if (!object.ReferenceEquals(this.BankNumField, value))
                {
                    this.BankNumField = value;
                    this.RaisePropertyChanged("BankNum");
                }
            }
        }

        [DataMember]
        public DateTime CreateTime
        {
            get
            {
                return this.CreateTimeField;
            }
            set
            {
                if (!this.CreateTimeField.Equals(value))
                {
                    this.CreateTimeField = value;
                    this.RaisePropertyChanged("CreateTime");
                }
            }
        }

        [DataMember]
        public Guid Id
        {
            get
            {
                return this.IdField;
            }
            set
            {
                if (!this.IdField.Equals(value))
                {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }

        [DataMember]
        public int OrderId
        {
            get
            {
                return this.OrderIdField;
            }
            set
            {
                if (!this.OrderIdField.Equals(value))
                {
                    this.OrderIdField = value;
                    this.RaisePropertyChanged("OrderId");
                }
            }
        }

        [DataMember]
        public Guid UserId
        {
            get
            {
                return this.UserIdField;
            }
            set
            {
                if (!this.UserIdField.Equals(value))
                {
                    this.UserIdField = value;
                    this.RaisePropertyChanged("UserId");
                }
            }
        }

        [DataMember]
        public string UserName
        {
            get
            {
                return this.UserNameField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UserNameField, value))
                {
                    this.UserNameField = value;
                    this.RaisePropertyChanged("UserName");
                }
            }
        }
    }
}

